﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace QD.SyncServers
{
    public class ConfigInstance
    {
        //////////////////////////////////////////////////////参数配置部分.begin
        /// <summary>
        /// 来源产品服务器名称
        /// </summary>
        public string SourceServerName { get; set; }
        /// <summary>
        /// 来源产品服务器网络名称(通常用IP)
        /// </summary>
        public string SourceServerNetName { get; set; }
        /// <summary>
        /// 来源产品数据库名称(主数据)
        /// </summary>
        public string SourceMasterDB { get; set; }
        /// <summary>
        /// 来源产品数据库名称(配置数据)
        /// </summary>
        public string SourceConfigDB { get; set; }
        /// <summary>
        /// 来源产品服务器登录用户
        /// </summary>
        public string SourceUserId { get; set; }
        /// <summary>
        /// 来源产品服务器登录密码
        /// </summary>
        public string SourceUserPassword { get; set; }
        /// <summary>
        /// 目标产品服务器名称
        /// </summary>
        public string TargetServerName { get; set; }
        /// <summary>
        /// 目标产品数据库名称(主数据)
        /// </summary>
        public string TargetMasterDB { get; set; }
        /// <summary>
        /// 目标产品数据库名称(配置数据)
        /// </summary>
        public string TargetConfigDB { get; set; }
        /// <summary>
        /// 目标产品服务器登录用户
        /// </summary>
        public string TargetUserId { get; set; }
        /// <summary>
        /// 目标产品服务器登录密码
        /// </summary>
        public string TargetUserPassword { get; set; }
        /// <summary>
        /// 仅生成同步语句(可以将生成的SQL语句在查询分析器上执行)
        /// </summary>
        public bool GenerateSyncCommandOnly { get; set; }
        /// <summary>
        /// 要同步数据的表名(*表示所有)
        /// </summary>
        public string SyncDataTableNames { get; set; }
        /// <summary>
        /// 不要同步数据的表名(*表示所有,DisabledSyncDataTableNames优先于SyncDataTableNames)
        /// </summary>
        public string DisabledSyncDataTableNames { get; set; }
        /// <summary>
        /// 是否备份数据库
        /// </summary>
        public bool BackupTargetDB { get; set; }
        /// <summary>
        /// 备份数据库文件路径(如果未指定，备份文件保存到主数据库文件所在目录，保存在根目录下可能会出现权限不够，注意服务器硬盘空间是否足够)
        /// </summary>
        public string BackupPath { get; set; }
        /// <summary>
        /// 启用事务一致性(如果启用事务一致性，有任何错误会全部回滚，如果不启用事务一致性，发生错误后会继续执行，如错误发生在表数据转移过程中，可能会导致操作表数据丢失，建议启用事务一致性。)
        /// </summary>
        public bool EnabledTran { get; set; }
        /// <summary>
        /// 删除失效的栏位(如果为1，目标表含有相同来源表不同的栏位时会被删除，如果为0，则不删除目标表与来源表不同的栏位)
        /// </summary>
        public bool DeleteExpiredColumn { get; set; }
        /// <summary>
        /// 是否记录同步日志
        /// </summary>
        public bool EnabledSyncLog { get; set; }
        /// <summary>
        /// 同步日志记录到哪个服务器上(SourceServer:来源服务器,TargetServer:目标服务器)
        /// </summary>
        public string SyncLogServerSourceType { get; set; }
        /// <summary>
        /// 同步日志记录到哪个数据库，如果为空，记录到目标数据库
        /// </summary>
        public string SyncLogDBName { get; set; }
        /// <summary>
        /// 操作用户ID
        /// </summary>
        public string OperateUserID { get; set; }
        /// <summary>
        /// 操作用户名称
        /// </summary>
        public string OperateUserName { get; set; }
        //////////////////////////////////////////////////////参数配置部分.end        
        /// <summary>
        /// 创建同步数据库存储过程语句(非同步存储过程参数)
        /// </summary>
        public string CreateSyncDBProcCommand { get; set; }
        /// <summary>
        /// 升级用户编号
        /// </summary>
        public string LoginUserId { get; set; }
        /// <summary>
        /// 升级用户密码
        /// </summary>
        public string LoginUserPassword { get; set; }
        /// <summary>
        /// 来源产品名称
        /// </summary>
        public string SourceProductName { get; set; }
        /// <summary>
        /// 目标产品名称
        /// </summary>
        public string TargetProductName { get; set; }
        //////////////////////////////////////////////////////结果.begin
        /// <summary>
        /// 执行时的错误信息
        /// </summary>
        public string ErrorMessage { get; set; }
        /// <summary>
        /// 主数据库同步执行时的错误信息
        /// </summary>
        public string MasterErrorMessage { get; set; }
        /// <summary>
        /// 主数据库同步日志
        /// </summary>
        public DataSet MasterSyncLogDS { get; set; }
        /// <summary>
        /// 配置数据库同步执行时的错误信息
        /// </summary>
        public string ConfigErrorMessage { get; set; }
        /// <summary>
        /// 配置数据库同步日志
        /// </summary>
        public DataSet ConfigSyncLogDS { get; set; }
        //////////////////////////////////////////////////////结果.end
    }
}
